Technical Q&A

NW 58 - fBroadCastAddr の値が常にゼロになっている理由(1999 年 3 月 8 日)


Q: OTInetGetInterfaceInfo を呼び出すと、fBroadcastAddr フィールドの値が常にゼロになっています。これはバグでしょうか。

A: バグではありません。このフィールドはブロードキャストアドレスの設定方法を記述するものです。ここがゼロとなっていれば、ブロードキャストアドレスが明示的に設定されていないことになります。この場合、ブロードキャストアドレスIP によって、IP アドレスとサブネットマスクをもとに合成されます。

ブロードキャストアドレスが明示的に設定されている場合は、fBroadcastAddr の値がアドレスとなります。現在のシステムでは、fBroadcastAddr の値がゼロでない場合にかぎり、DHCP サーバーのoption 28 を介してアドレスが供給されます。

次のコードを使えば、実際に使用されているブロードキャストアドレスを割り出すことができます。

broadcastAddr = info.fBroadcastAddr;
if (broadcastAddr == 0) {
    broadcastAddr = info.fAddress | ‾info.fNetmask;
}


-- Quinn "The Eskimo!"
Worldwide Developer Technical Support

Technical Q&As | Contents
Previous Question | Next Question

To contact us, please use the Contact Us page.